Cloud computing is the use of computing resources (hardware and software) which are available in a remote location and accessible over a network, such as the Internet. Users are able to buy these computing resources (including storage and computing power) as a utility on demand. Cloud computing entrusts remote services with a user's data, software and computation. Use of virtual computing resources can provide a number of advantages including cost advantages and/or ability to adapt rapidly to changing computing resource needs.
A cloud provider has a plurality of virtual machine images, each of which can be used to instantiate a virtual machine. Additionally, customers of the cloud provider can have custom virtual machine images. Each virtual machine image can have applications and an operating system associated with it that need software updates at regular intervals. When software updates occur, a customer must apply the updates to each custom virtual machine image, which requires a significant investment in time and resources.